package com.izocen.rules.interfaces;

import java.util.Map;

import com.izocen.rules.common.EngineResponse;
import com.izocen.rules.common.RuleEntity;

/**
 *@ClassName LessRuleEngine
 * @Description: 规则引擎接口
 * @Author pengyongjun
 * @Date 2020年6月19日
 */
public interface LessRuleEngine {
	
	/**执行规则引擎 
	 * 
	 * @param fact
	 * @return
	 */
	public EngineResponse fire(Map<String,String> fact);
	
	/**从规则池移除一个规则
	 * @param ruleId
	 * @return
	 */
	public EngineResponse del(String ruleId);
	
	/**添加一个规则到规则池
	 * @param ruleEntity
	 * @return
	 */
	public EngineResponse add(RuleEntity ruleEntity);
	
	
	/**获取一个规则
	 * @param ruleId
	 * @return
	 */
	public EngineResponse get(String ruleId);
	
	/**更新一个规则
	 * @param ruleEntity
	 * @return
	 */
	public EngineResponse update(RuleEntity ruleEntity);
	
	/**获取整个资源池（里面都是规则啦）
	 * @return
	 */
	public EngineResponse getRulePool();
	
	
	
	
}
